package controleur;

import modele.AbstractModel;

/**
 * Implemente le DP commandes : 
 * Commande qui supprime une livraison dans une tournee non calculee
 */
public class GenFdRCmd_Suppression extends AbstractCommande{

	// Receveur de la commande: le modele
	private AbstractModel modele;
	// Identifiant de l'intersection correspondant a la livraison a supprimer
	private int lidLivraison;
	//Index de la plage horaire dans laquelle la livraison etait prevue
	private int lindexPH;
	
	/**
	 * Constructeur de la classe : construit une nouvelle commande
	 * @param leModele receveur de la commande : le modele qui sera affecte
	 * @param idLivraison identifiant de l'intersection correspondant a la livraison a supprimer
	 * @param indexPH index de la plage horaire dans laquelle etait prevue la livraison supprimee
	 */
	public GenFdRCmd_Suppression(AbstractModel leModele, int idLivraison, int indexPH) {
		modele=leModele;
		lidLivraison=idLivraison;
		lindexPH=indexPH;
	}

	/**
	 * Effectue la commande
	 */
	@Override
	public void Do() {
		modele.supprimerLivraisonAvantGen(lidLivraison);
	}

	/**
	 * Annule la commande
	 */
	@Override
	public void Undo() {
		modele.ajouterLivraisonAvantGen(lidLivraison, lindexPH);
	}

}
